package com.unicom.office.type;

import com.unicom.office.var.ObjectVarItem;
import com.unicom.office.var.VarItem;

import java.util.HashMap;
import java.util.Map;
import java.util.Set;

public class ObjectTypeItem extends DataTypeItem {
    private Map<String, VarItem> props;

    public ObjectTypeItem(String name) {
        super(name);
        props = new HashMap<String, VarItem>();
        //this.setDefaultValue(new HashMap<String, Object>());
    }

//    public Object getFormatedValue(Object obj){
//        Map<String, Object> map = null;
//        if(obj == null){
//            map = (Map<String, Object>)getDefaultValue();
//        }else{
//            map = (Map<String, Object>)obj;
//        }
//
//        // 对象的数据需要把属性也格式化
//        Map<String, Object> newMap = new HashMap<String, Object>();
//        Set<String> keySet = getProps().keySet();
//        for (String key : keySet) {
//            Object formatedValue = getProps().get(key).getTypeItem().getFormatedValue(map.get(key));
//            newMap.put(key, formatedValue);
//        }
//
//        return newMap;
//    }

    public VarItem createVarItem(String name) {
        return new ObjectVarItem(name, this);
    }

    public void addProp(String name, VarItem varItem){
        props.put(name, varItem);
    }

    public Map<String, VarItem> getProps() {
        return props;
    }

    public VarItem getProp(String key){
        return props.get(key);
    }
}
